package com.tools.hry.xls.analysis.extension;


import com.tools.hry.xls.exception.ExcelContentInvalidException;
import com.tools.hry.xls.exception.ExcelParseException;

/**
 * 校验规则接口
 *
 * @param <T>
 */
public interface ExcelRule<T> {
    /**
     * 实现对单元格内容的检查
     * 如果内容不合法，则抛出ExcelContentInvalidException
     * @param value
     * @param columnName
     * @param fieldName
     * @throws ExcelContentInvalidException
     */
     @Deprecated
     void checkCell(Object value, String columnName, String fieldName) throws ExcelContentInvalidException,
             ExcelParseException;

    /**
     * 内容过滤规则
     * 在该方法中对内容进行修改，并返回修改后的对象
     * @param value
     * @param columnName
     * @param fieldName
     * @return t
     */
    @Deprecated
     T filterCell(Object value, String columnName, String fieldName);

    /**
     * 实现对行数据内容的检查
     * 如果内容不合法，则抛出ExcelContentInvalidException
     * @param rowObj
     * @throws ExcelContentInvalidException
     * @throws ExcelParseException
     */
    void checkRow(T rowObj) throws ExcelContentInvalidException, ExcelParseException;

    /**
     *  实现对行数据内容过滤规则
     * 在该方法中对内容进行修改，并返回修改后的对象
     * @param rowObj
     * @return
     */
    T filterRow(T rowObj);
}
